Video servers, including networked video servers, are known in the art. At the transmitting end, video servers include a library of multimedia (e.g. video and audio) sources, which typically consists of movies or other entertainment, often referred to as "titles". The video and audio that make up a title are stored as "bit streams" or simply referred to as "streams" on the video server. Video servers permit one or more users to select one or more of the movies for viewing. An admission arbitrator unit is provided to limit the number of users allowed to use the video server at any given time, to prevent overloading the network or disk storage subsystem. Such overload could cause movies to run too slowly or to move forward (or backward) in a jerky manner.
The video server includes magnetic storage hard disk drives on which recorded blocks from the video titles are magnetically stored. Titles might be any length, from a 30-second commercial to a two hour feature movie. For VHS-quality video streams, the delivery rate is typically 1.5 to 2 Mbit/second for MPEG-1 encoding; 4 Mbit/second for MPEG-2 encoding. Full resolution (CCR-601) video is typically recorded at a higher rate (4 to 8 Mbit/second); HDTV Grand Alliance systems allow rates of 10 to 45 Mbit/second. Thus, one MPEG-1 or MPEG-2 movie may require 1 GB to 8 GB of storage media, with a typical two-hour, VHS-quality movie consuming about 1.8 GB of disk space.
To sustain the throughput that is required for the timely delivery of video streams, you cannot store the bit stream for a single movie in a single hard disk unit, because a typical single hard disk drive can only output data at the rate of a few MBytes/second. To circumvent this bottleneck, it is common to store blocks of the movie (e.g., perhaps 0.5 second sequences) in multiple hard disk units. These blocks are then read out to a buffer, and communicated over the network. As these blocks are sent over the network, new blocks from the movie are read out from a set of hard disk units, hereinafter referred to as a disk array. At the receiving end, the blocks are decoded for user viewing on a video monitor, television receiver or the like.
The server delivers bit streams from the array of disks at a constant bit rate. The video server must assure that once a stream request is accepted, the stream is delivered at the specified constant bit rate until the stream ends or the server is told to stop.
Delivered video streams are independent in that they can each be stopped and started independently. Furthermore, these delivered bit streams may each contain different content (i.e. each being a different movie) or a plurality of delivered streams can be from the same content stream, such as a plurality of video streams containing video data from the same movie. Furthermore, the video streams from the same content need not be synchronized so that more than one viewer can be watching the same movie simultaneously, although one user started the movie at a different time from the other.
There are two general models used for video server systems. One is a so-called "pull" model, in which receiving devices request information from the video server, which then responds to these requests. In such "pull" type systems, there are inherently present controls to ensure that data is received on time and in a proper sequence even in the event of bit errors, since the receiving system is in essence in control of the video server and can re-request information or hold a request until a previous request has been properly received.
The other model for video servers is the "push" model, in which the video server receives an initial instruction to start a video stream, and thenceforth the video server "pushes" the video stream out at a constant bit rate with no dynamic flow control or error recovery protocol. In this "push" model of stream delivery, the server delivers video streams from the array of disks at a constant bit rate. The video server's requesting client must assume that once a stream request is accepted, the stream is delivered at the specified constant bit rate until the stream ends or the server is told to stop.
In the local area network (LAN) environment, the video server is connected to one high-speed 100BaseT subnetwork via one or more Fast Ethernet host adapters. Digital video streams are sent to their destination(s) using LAN packets. Destination clients can access the video streams by connecting directly to one of the 100BaseT networks. Alternatively, the 100BaseT networks can be connected to an optional packet-filtering switch that routes to independent 10BaseT networks. This allows individual destination clients to connect to a 10BaseT network without affecting the aggregate bandwidth available.
Typically, video servers use the Internet Protocol (IP) to transmit data to client computers on IP networks. Note that, for the present purposes, an IP network is considered to be equivalent to a LAN. For this purpose, a traditional server uses a single physical network interface over which the data is transmitted to one or more destination hosts that reside on the same IP subnetwork. As depicted in FIG. 2a, server 201 communicates via a link 203 to packet switch 205, and in turn to a plurality of users 207-1 through 207-N via links 206-1 through 206-N, respectively. If desired, a user 204 may be connected to server 201 by direct connection to link 203, for example to control the server application program. The various elements including link 203, packet switch 205, and connections 206-1 through 206-N are referred to as local area network (LAN) 202. Another way of looking at this prior art local area network is depicted in FIG. 2b, utilizing similar reference numbering. Server 201 is often running a source application (such as a video delivery system) 204 and is connected through the physical interface 203 to IP subnetwork 202, which is the local area network. Server 201 communicates through interface 203 and IP subnetwork 202 with destination applications 207-1 through 207-N through their respective physical interfaces 206-1 through 206-N. The limitation with this prior art approach is that the output bandwidth of the server is bounded by the bandwidth of the single network interface.
In the prior art, the only way to achieve full IP connectivity, for example, (referring to FIG. 3a) from user 207-1-1 to server 201 over connection 203-2, is to rely on an intervening router 209. Any direct communication among users 207-1-1 through 207-N-N would likewise rely on router 209. The conventional approach of achieving greater bandwidth by connecting additional physical interfaces 203-1 and 203-2 to different LANs 202-1 and 202-2 is shown in FIGS. 3a and 3b. The approach here is to configure additional physical network interfaces connected to distinct IP networks. The server is constrained to distribute additional output bandwidth over multiple IP subnetworks.